﻿using System.Threading.Tasks;
using DotnetCore.Extension.DependencyInjection;
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Extensions.ManagedClient;

namespace MQTT.Client.App
{
    public interface IMqttClientManager : ISingletonDependency
    {
        Task StartAsync();

        Task StopAsync();

        IManagedMqttClient MqttClient { get; set; }

        Task PublishAsync(MqttApplicationMessage message);

        Task PublishAsync(string topic, object message);
    }
}
